/* 
 * File:   Lista_Aluno.h
 * Author: Vagner Clementino
 *
 * Created on 7 de Abril de 2012, 09:39
 */

#include "aluno.h"

typedef struct{
    Aluno a;
    struct Nodo_Aluno* next;
}Nodo_Aluno;

typedef Nodo_Aluno* pNodo;

typedef struct{
    int num_itens;
    pNodo primeiro;
    pNodo ultimo;
}Head;

typedef Head* Lista_Aluno;

/*Cria uma lista vazia*/
Lista_Aluno cria_lista_aluno();

/*Cria dinamicamente espaco para um nodo da lista*/
pNodo cria_nodo();

/*Insere uma Pessoa p na lista l*/
void insere_aluno(Lista_Aluno* l, Aluno* p);

/*Imprime o conteudo de uma lista l, sabendo o tamanho da lista de preferecia
 * das pessoas.
 */
void imprime_lista_aluno(const Lista_Aluno l);

/*Busca a pessoa de id id_pessoa na lista l retornando
 * um ponteiro para a struct pessoa no caso de sucesso e
 * NULL caso contrario.
 */
Aluno* busca_aluno(int id_pessoa, const Lista_Aluno l);

/*Verifica se a lista l esta vazia. Retorna 1 se a lista estiver vazia
 * ou 0 (zero) caso contrario.
 */
int esta_vazia(const Lista_Aluno l);

/*Remove todo os itens de uma lista*/
void remove_todos_alunos(Lista_Aluno* l);

